package controle;


import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import conexao.ConexaoBancoDeDados;
import entidades.Perfil;
public class ControlePerfil {

	private int calculaValor;

	public void salvarPerfil(Perfil perfil) {
		Session session = ConexaoBancoDeDados.getSessionFactory().getCurrentSession();
		session.beginTransaction();
		try {
			session.save(perfil);
			session.getTransaction().commit();
		} catch (Exception e) {
			session.getTransaction().rollback();
		}
	}
	
	public void deletarPerfil(Perfil perfil,int id){  
			Session session = ConexaoBancoDeDados.getSessionFactory()
				.getCurrentSession();
		  try{  
		    session.beginTransaction();  
		    perfil = (Perfil) session.load(Perfil.class, id);  
		    System.out.println("Iniciando a Remoção");  
		    session.delete(perfil);  
		    session.getTransaction().commit();
		    System.out.println("Formulario Removido");  
		  }catch (Exception e) {  
		    System.out.println("Erro: " +"Não foi possivel remover o formulario");  
		    session.getTransaction().rollback();
		}  
	}
	
	public void deletarPerfil(Perfil perfil){  
		Session session = ConexaoBancoDeDados.getSessionFactory()
			.getCurrentSession();
	  try{  
	    session.beginTransaction();    
	    System.out.println("Iniciando a Remoção");  
	    session.delete(perfil);  
	    session.getTransaction().commit();
	    System.out.println("Formulario Removido");  
	  }catch (Exception e) {  
	    System.out.println("Erro: " +"Não foi possivel remover o formulario");  
	    session.getTransaction().rollback();
	}  
}
		public void fecharSessao (Perfil perfil){
			Session session = ConexaoBancoDeDados.getSessionFactory().getCurrentSession();
			session.close();
		}
		public List<Perfil> pesquisarAll () {
			Session session = ConexaoBancoDeDados.getSessionFactory()
			.getCurrentSession();
			List<Perfil> lista = null;
			  try{  
			    session.beginTransaction();  
			    Query query = session.createQuery("from Perfil");
			    lista = query.list();  
			    session.getTransaction().commit();
			  }catch (Exception e) {  
			    System.out.println("Erro: " +"Nao foi possivel remover o formulario");  
			    session.getTransaction().rollback();
			}
			  return lista;
		}
		
		public List<Perfil> pesquisarPorNome (String nome) {
			Session session = ConexaoBancoDeDados.getSessionFactory()
			.getCurrentSession();
			List<Perfil> lista = null;
			  try{  
			    session.beginTransaction();  
			    Query query = session.createQuery("from Perfil where nome = :strnome");
			    query.setString("strnome", nome);
			    lista = query.list();  
			    session.getTransaction().commit();
			  }catch (Exception e) {  
			    System.out.println("Erro: " +"Nao foi possivel remover o formulario");  
			    session.getTransaction().rollback();
			}
			   return lista;
		}	

	public Perfil pesquisarPorNomeUnico(String nome) {
		Session session = ConexaoBancoDeDados.getSessionFactory()
				.getCurrentSession();
		Perfil perfil = null;
		try {
			session.beginTransaction();
			Query query = session
					.createQuery("from Perfil where nome = :strnome");
			query.setString("strnome", nome);
			perfil = (Perfil) query.uniqueResult();
			session.getTransaction().commit();
		} catch (Exception e) {
			System.out.println("Erro: "
					+ "Nao foi possivel remover o formulario");
			session.getTransaction().rollback();
		}
		return perfil;
	}

	public int calculaValor(int qtdPerfil,int valorPerfil) {
			int calcula = qtdPerfil * valorPerfil;
			return calcula;
		}
	}


